<?php

/**
 * contact : 刘经理 19326416371
 * company : 版权所属 四川北星惯牌科技有限公司
 **/

namespace app\common\manager;

use app\common\model\Invite;
use think\Db;
use think\Exception;

class InviteManager extends BaseManager
{

    /**
     * @param int $userId 受邀人id
     * @param int $invited_user_id 邀请人id
     * @param string $ip ip地址
     * @param bool $trans 是否开启事务
     * @return array
     */
    public static function InviteRecord(int $type,int $userId, int $invited_user_id,string $ip,bool $trans=true):array
    {
        if ($trans){
            Db::startTrans();
        }
        try {
            Invite::create([
                'user_id' => $userId,
                'type'=>$type,
                'invited_user_id' => $invited_user_id,
                'ip' => $ip,
                'createtime' => time(),
                'update_time' => time(),
            ]);

            if ($trans){
                Db::commit();
            }
            self::setStatusCode(self::$successCode);
            self::setMessage(self::$successMessage);
        }catch (Exception $exception){
            if ($trans){
                Db::rollback();
            }
            self::setStatusCode(self::$failCode);
            self::setMessage($exception->getMessage().$exception->getFile().$exception->getLine());
        }

        return ['code'=>self::getStatusCode(),'message'=>self::getMessage()];
    }
}